home *** CD-ROM | disk | FTP | other *** search
- { Someone asked for the routines for hardware scrolling. So here it is: }
-
- procedure setaddress(ad:word); assembler;
- asm
- mov dx,3d4h
- mov al,0ch
- mov ah,[byte(ad)+1]
- out dx,ax
- mov al,0dh
- mov ah,[byte(ad)]
- out dx,ax
- end;
-
- procedure setlinecomp(ad:word); assembler;
- asm
- mov dx,3d4h
- mov al,18h
- mov ah,[byte(ad)]
- out dx,ax
- mov al,7
- out dx,al
- inc dx
- in al,dx
- dec dx
- mov ah,[byte(ad)+1]
- and ah,00000001b
- shl ah,4
- and al,11101111b
- or al,ah
- mov ah,al
- mov al,7
- out dx,ax
- mov al,9
- out dx,al
- inc dx
- in al,dx
- dec dx
- mov ah,[byte(ad)+1]
- and ah,00000010b
- shl ah,5
- and al,10111111b
- or al,ah
- mov ah,al
- mov al,9
- out dx,ax
- end;
-
- procedure retrace; assembler;
- asm
- mov dx,3dah
- @vert1:
- in al,dx
- test al,8
- jz @vert1
- @vert2:
- in al,dx
- test al,8
- jnz @vert2
- end;
-
- {
- There you go. Should also work in non-modex modes. Don't forget to include a
- retrace.
- }